package com.issac.common.core.controller;

import cn.hutool.core.collection.CollectionUtil;
import com.issac.common.core.domain.R;
import com.issac.common.core.domain.TableDataInfo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 将操作结果（影响行数或布尔值）转换为统一的响应对象 R<Void>
 *     避免在每个接口中重复判断 “成功 / 失败” 并构建响应。
 */
public class BaseController {
    public R<Void> toR(int rows) {
        return rows > 0 ? R.ok() : R.fail();
    }

    public R<Void> toR(boolean result) {
        return result ? R.ok() : R.fail();
    }

    public TableDataInfo getTableDataInfo(List<?> list) {
        if (CollectionUtil.isEmpty(list)) {
            return TableDataInfo.empty();
        }

        return TableDataInfo.success(list, new PageInfo<>(list).getTotal());
    }
}